package configuration

import (
	"encoding/json"
	"errors"
	"fmt"
	"kop/modules/configuration/client"
	"kop/modules/configuration/configuration/attribute/attrtype"
	"kop/util/log"
)

func init() {

	var err error
	if err = json.Unmarshal(client.Load("EventTemplate"), &EventConfigs); err != nil {
		panic(err)
	}

	log.Info("Load EventTemplate.json success.")

}

const (
	Type1 EventType = 1 // 直接发奖励
	Type2 EventType = 2 // 3种选项
	Type3 EventType = 3 // 派出船长
)

// 爵位配置
type (
	EventType int8

	EventConf struct {
		EventID       int32             `json:"ID"` // 事件ID
		Name          string            // 事件名称
		EventType     EventType         // 事件类型
		Weight        int32             // 权重
		NeedCamp      int32             // 阵营要求
		NeedSex       int32             // 性别要求
		NeedAttribute attrtype.AttrType // 属性类型
		AwardID       []int32           // 奖励：1奖励/决策：1|2|3/委派：1成功|2失败
	}
)

func (c EventConf) GetWeight() int32 {
	return c.Weight
}

func (c EventConf) GetID() int32 {
	return c.EventID
}

var (
	EventConfigs = map[int32]EventConf{}
)

func GetByEventID(ID int32) (EventConf, error) {

	var conf, ok = EventConfigs[ID]
	if ok {
		return conf, nil
	}

	return EventConf{}, errors.New(fmt.Sprintf("EventID not found [%d]", ID))
}
